/*
 * Copyright (c) 2025 EasyAdmin
 * All rights reserved.
 *
 * This file is part of the [EasAdmin] project.
 * Unauthorized copying of this file, via any medium, is strictly prohibited.
 * Proprietary and confidential.
 *
 * Author: EasyAdmin ( 1073602@qq.com )
 * Website: https://www.xhxiao.com
 */
package com.easy.module.system.service;

import com.easy.framework.database.service.IService;
import com.easy.module.system.entity.SysConf;
import com.easy.module.system.query.SysConfQuery;

/**
 * 参数配置表 Service接口
 *
 * @author EasyAdmin ( 1073602@qq.com )
 * @date 2025-08-19
 */
public interface ISysConfService extends IService<SysConf, SysConfQuery>
{

    /**
     * 新增参数配置
     *
     * @param dto 参数配置
     * @return 结果
     */
    boolean add(SysConf dto);

    /**
     * 修改参数配置
     *
     * @param dto 参数配置
     * @return 结果
     */
    boolean update(SysConf dto);

    /**
     * 批量删除参数配置
     *
     * @param ids 需要删除的参数配置主键集合
     * @return 结果
     */
    boolean deleteByIds(Long[] ids);


    SysConf getByKey(String confKey);

    /**
     * 根据键名查询参数配置信息
     *
     * @param confKey 参数键名
     * @return 参数键值
     */
    String getValue(String confKey);

    /**
     * 校验参数键名是否唯一
     *
     * @param conf 参数信息
     * @return 结果
     */
    boolean existByKey(SysConf conf);

    /**
     * 加载参数缓存数据
     */
    void loadConfCache();

    /**
     * 清空参数缓存数据
     */
    void clearConfCache();

    /**
     * 重置参数缓存数据
     */
    void resetConfCache();
}
